/**
 * Copyright (c), 2021, 安徽海行云物联科技有限公司
 * FileName Test
 * Author 施瑞
 * Date 2021/11/5
 * Description
 */
package com.sun.common.core.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author 施瑞
 * @description 通用基本信息DO-包含逻辑删除字段和乐观锁字段
 * @date 2021/11/5
 */
@Data
public class BaseDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * id
     * 采用雪花算法生成
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 创建人
     * 新增时自填充
     */
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 创建时间
     * 新增时自填充
     */
    @TableField(value = "gmt_create", fill = FieldFill.INSERT)
    private Date gmtCreate;

    /**
     * 修改人
     * 修改时自填充
     */
    @TableField(value = "modified_by", fill = FieldFill.INSERT_UPDATE)
    private String modifiedBy;

    /**
     * 修改时间
     * 新增修改时自填充
     */
    @TableField(value = "gmt_modified", fill = FieldFill.INSERT_UPDATE)
    private Date gmtModified;

    /**
     * 删除标识
     * 1删除 0未删除
     * 新增时自填充
     * 查询时忽略
     */
    @TableField(value = "is_deleted", fill = FieldFill.INSERT)
    private Boolean isDeleted;

    /**
     * 乐观锁Version
     */
    @Version
    @TableField(value = "version", fill = FieldFill.INSERT)
    private Long version;

}
